A distributed system may include many interconnected hardware and software resources. Due to the vast number of resources in a distributed system, some distributed systems are very complex and difficult to understand. In large distributed systems, some resources may affect the operation of other resources. As the size of a distributed system increases, it becomes increasingly difficult to ascertain the effect of a particular resource on other resources in the distributed system.
Distributed systems allow developers of a project to create one or more virtual machine (VM) instances hosted by the distributed system using public and/or private images. When creating a VM instance for a corresponding project, a developer specifies a zone, operating system, and machine type for that VM instance. Each VM instance may include one or more corresponding persistent disks for storing data associated with the VM instance. Persistent disks correspond to durable network storage devices that VM instances can access in the same manner a server or desktop computing device accesses physical discs. Persistent disks may include standard hard disk drives (HDD) and solid state drives (SSD), and the distributed system may distribute data across multiple physical disks associated with any given persistent disk. Generally, developers are required to determine a size/capacity of the persistent disk at the time of creation of the corresponding VM instance, thereby placing a burden on developers to make an accurate initial prediction of storage capacity needed for the instance.